#ifndef	_COMMAND_HEADER_FILE_

#define _COMMAND_HEADER_FILE_

#include <string>

#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/helpers/exception.h>

#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/filesystem.hpp>
#include <boost/lexical_cast.hpp>

using namespace std;

using namespace	log4cxx;
using namespace log4cxx::helpers;


using namespace	boost;
using namespace	boost::filesystem;


class command
{
	protected	:
		string 		name;
		LoggerPtr	logger;	
		time_t		init_time;	
		string 		tree;
		string 		filter;					
	public 		:
		virtual	void execute()=0;		
		void setName(string name);
		
		void setTree(string tree);	
		string getTree();							

		void setFilter(string filter);	
		string getFilter();

};


class	delete_command:	public virtual command
{
	public:
		delete_command();
		void execute();
};


class	statistics_command:	public virtual command
{
	private:
		void process_on_file(path folder);
		void process_on_folder(path folder);		

	public:
		statistics_command();
		void execute();
		void execute(string folder);
};


#endif
